	function drawNoC(X,Y,Z,gap,sideLength,map,thermalProfile){
		var xRange = range(0,X,gap);
		var yRange = range(0,Y,gap);
		var zRange =range(0,Z,gap);
		for(var x in xRange){
			for(var y in yRange){
				for (var z in zRange){
					//console.log("x:" + xRange[x]+"y:"+yRange[y]+"z:"+zRange[z]);
					var geometry = new THREE.SphereGeometry( sideLength, sideLength, sideLength ); 
					var material = new THREE.MeshBasicMaterial( { color: show } ); 
					var cube = new THREE.Mesh( geometry, material );
					cube.position.set(xRange[x],yRange[y],zRange[z]);
					scene.add( cube );

					show -= 0x0FF000;
					//radius += 1;
				}
			}
		}

		var cylinderXRangeX = range(0,X-2,gap);
		var cylinderYRangeX = range(0,Y,gap);
		var cylinderZRangeX = range(0,Z,gap);
		drawCommunication(cylinderXRangeX,cylinderYRangeX,cylinderZRangeX,new THREE.Vector3(0,0,1),1.57);

		var cylinderXRangeY = range(0,X,gap);
		var cylinderYRangeY = range(0,Y-2,gap);
		var cylinderZRangeY = range(0,Z,gap);
		drawCommunication(cylinderXRangeY,cylinderYRangeY,cylinderZRangeY,new THREE.Vector3(0,0,0),0);

		var cylinderXRangeZ = range(0,X,gap);
		var cylinderYRangeZ = range(0,Y,gap);
		var cylinderZRangeZ = range(0,Z-2,gap);
		drawCommunication(cylinderXRangeZ,cylinderYRangeZ,cylinderZRangeZ,new THREE.Vector3(1,0,0),1.57);

	}

	function drawCommunication(cylinderXRange,cylinderYRange,cylinderZRange,rotateVector,rotateAngle){
		for(var x in cylinderXRange){
			for(var y in cylinderYRange){
				for (var z in cylinderZRange){
					//console.log("x:" + x+"y:"+x+"z:"+z);
					var geometry = new THREE.CylinderGeometry(  5, 5,gap*2, 32 ); 
					var material = new THREE.MeshBasicMaterial( { color: show } ); 
					var cylinder = new THREE.Mesh( geometry, material );
					cylinder.position.set(cylinderXRange[x],cylinderYRange[y],cylinderZRange[z]);
					scene.add( cylinder );
					cylinder.rotateOnAxis(rotateVector,rotateAngle);
					show -= 0x0FF000;
					//radius += 1;
				}
			}
		}
	}
	
	function range (mean,count,step) {
		var result = [];
		if(count < 1){
			return result;
		}
		if(count%2 == 1){
			var meanIndex = Math.floor(count/2);
			result[meanIndex] = mean;
			for (var i = 1;i <= meanIndex;i++) {
				result[meanIndex - i] = -step*i + mean;
				result[meanIndex + i] = step*i + mean;
			};
		}else{
			var meanIndex = count/2;
			result[meanIndex] = step/2;
			result[meanIndex - 1] = -step/2;
			for(var i = 1;i <= meanIndex - 1;i++){
				result[meanIndex+i] = step/2 + step*i;
				result[meanIndex - 1 -i] = -step/2 - step*i;
			}
		}

	    return result;
	}
